還記得 r/w/x 這三個權限以及他們各自對應的分數嗎?
接下來要介紹三大特殊檔案屬性 SUID/SGID/SBIT,先來看一張表吧。
權限 | SUID | SGID | SBIT |
---|---|---|---|
分數 | 4 | 2 | 1 |
咦,怎麽感覺似曽相似呢?這個分數留到下一篇說明XD
我們再來看一個檔案 /usr/bin/passwd
的權限:
-rwsr-xr-x 1 root root 59K Mar 22 2019 /usr/bin/passwd
其中的 rws可能會讓你產生疑惑,因爲之前從來沒有提到 s 這個屬性的存在。
我們先來分析一下這個檔案:
具有 suid 的程式(權限屬性標記爲 s)能讓你在執行期間暫時獲得 root (檔案建立者)的權限,然後去改掉原本對使用者來說不具r/w權限的檔案。
前提是必須擁有執行這個程式的權限
就有點像是遊戲裏吃到無敵星星(具有suid 的二進位程式)才能越級打怪(越權更改),然後怪打掉(程式執行完)之後又變成正常的一般角色(一般使用者),你很想知道無敵星星怎麽做的,但是無法理解(沒有可讀權限)。
因此執行 /etc/passwd 能讓你暫時獲得 root 權限,並更改原本不具權限的 /etc/shadow
這也就是一般使用者更改密碼的原理:
下一篇繼續探討 SGID 和 SBIT~